<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-tools-tcl" role="wrap">
  <?dbhtml filename="tcl.html"?>

  <sect1info condition="script">
    <productname>tcl</productname>
    <productnumber>&tcl-version;</productnumber>
    <address>&tcl-url;</address>
  </sect1info>

  <title>Tcl-&tcl-version;</title>

  <indexterm zone="ch-tools-tcl">
    <primary sortas="a-Tcl">Tcl</primary>
  </indexterm>

  <sect2 role="package">
    <title/>

    <para>Пакет содержит "командный язык инструментов" - скриптовый язык высокого уровня. Он необходим для выполнения тестов некоторых пакетов LFS, и будет установлен только во временный инструментарий.</para>

    <segmentedlist>
      <segtitle>&buildtime;</segtitle>
      <segtitle>&diskspace;</segtitle>

      <seglistitem>
        <seg>&tcl-ch5-sbu;</seg>
        <seg>&tcl-ch5-du;</seg>
      </seglistitem>
    </segmentedlist>

  </sect2>

  <sect2 role="installation">
    <title>Установка пакета Tcl</title>

    <para>Этот пакет, и следующие два (Expect и DejaGNU) будут установлены для возможности запуска набора тестов для пакетов GCC и Binutils
	 и других. Установка трех пакетов для тестирования может показаться чрезмерным, но очень обнадеживает, если важно знать что скомпилированые инструменты работают правильно. Выполнение тестов в этой главе не является обязательным, эти пакеты необходимы для выполнения набора тестов в главе <xref linkend="chapter-building-system"/>.</para>

    <para>Обратите внимание, что используется минимальная версия пакета Tcl для запуска тестов LFS. Полный пакет доступ в <ulink url='&blfs-book;general/tcl.html'>BLFS </ulink>.</para>

    <para>Подготовьте пакет Tcl к компиляции:</para>

<screen><userinput remap="configure">cd unix
./configure --prefix=/tools</userinput></screen>

    <para>Выполните сборку пакета:</para>

<screen><userinput remap="make">make</userinput></screen>

    <para>Компиляция завершена. Как обсуждалось ранее выполнение тестов не является обязательным  для набора временных инструментов в этой главе. Чтобы запустить выполнение тестов, в любом случае, выполните следующую команду:</para>

<screen><userinput remap="test">TZ=UTC make test</userinput></screen>

    <para>Наборы тестов Tcl могут завершаться с ошибками при определённых условиях в хост-системе, которые до конца не понятны. Следовательно, сбои при выполнении тестов набора вполне ожидаемы, и они не считаются критичными. Установка аргумента <parameter>TZ=UTC</parameter> устанавливает часовой пояс для Всемирного координированного времени (UTC) только на время выполнения тестового набора. Это гарантирует, что тесты времени осуществляются правильно. Информацию о переменной окружения <envar>TZ</envar> можно посмотреть в главе <xref linkend="chapter-bootscripts"/>.</para>

    <para>Установите пакет:</para>

<screen><userinput remap="install">make install</userinput></screen>

    <para>Сделайте установленную библиотеку доступной для записи, чтобы отладочные символы могли быть удалены позднее:</para>

<screen><userinput remap="install">chmod -v u+w /tools/lib/libtcl&tcl-major-version;.so</userinput></screen>

    <para>Установите заголовочные файлы Tcl. Следующему пакету, Expect, они необходимы чтобы выполнить сборку.</para>

<screen><userinput remap="install">make install-private-headers</userinput></screen>

    <para>Создайте необходимую символическую ссылку:</para>

<screen><userinput remap="install">ln -sv tclsh&tcl-major-version; /tools/bin/tclsh</userinput></screen>

  </sect2>

  <sect2 id="contents-tcl" role="content">
    <title>Содержимое пакета Tcl</title>

    <segmentedlist>
      <segtitle>Установленные программы</segtitle>
      <segtitle>Установленная библиотека</segtitle>

      <seglistitem>
        <seg>tclsh (link to tclsh&tcl-major-version;) and tclsh&tcl-major-version;</seg>
        <seg>libtcl&tcl-major-version;.so, libtclstub&tcl-major-version;.a</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Краткое описание</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="tclsh&tcl-major-version;">
        <term><command>tclsh&tcl-major-version;</command></term>
        <listitem>
          <para>Командная оболочка Tcl</para>
          <indexterm zone="ch-tools-tcl tclsh&tcl-major-version;">
            <primary sortas="b-tclsh&tcl-major-version;">tclsh&tcl-major-version;</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="tclsh">
        <term><command>tclsh</command></term>
        <listitem>
          <para>Ссылка на tclsh&tcl-major-version;</para>
          <indexterm zone="ch-tools-tcl tclsh">
            <primary sortas="b-tclsh">tclsh</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libtcl&tcl-major-version;.so">
        <term><filename class="libraryfile">libtcl&tcl-major-version;.so</filename></term>
        <listitem>
          <para>Библиотека Tcl</para>
          <indexterm zone="ch-tools-tcl libtcl&tcl-major-version;.so">
            <primary sortas="c-libtcl&tcl-major-version;.so">libtcl&tcl-major-version;.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libtclstub&tcl-major-version;.a">
        <term><filename class="libraryfile">libtclstub&tcl-major-version;.a</filename></term>
        <listitem>
          <para>Библиотека Tcl Stub</para>
          <indexterm zone="ch-tools-tcl libtclstub&tcl-major-version;.a">
            <primary sortas="c-libtclstub&tcl-major-version;.a">libtclstub&tcl-major-version;.a</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
